package com.xinqi.modules.sys.rotation.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.base.response.Param;
import com.xinqi.common.base.user.Account;
import com.xinqi.modules.sys.rotation.dto.req.RotationImageCreateDTO;
import com.xinqi.modules.sys.rotation.dto.req.RotationImageDeleteDTO;
import com.xinqi.modules.sys.rotation.dto.req.RotationImageEnableDTO;
import com.xinqi.modules.sys.rotation.dto.req.RotationImageQueryDTO;
import com.xinqi.modules.sys.rotation.dto.req.RotationImageUpdateDTO;
import com.xinqi.modules.sys.rotation.dto.rsp.RotationImageResultDTO;

import java.util.List;

/**
 * 系统轮播图服务层
 *
 * @author: yyzhenn
 * @date: 2023/04/23
 */
public interface RotationImageService {
    /**
     * 分页查询 系统轮播图数据
     *
     * @param pageable
     * @param query
     * @return
     */
    PageInfo<RotationImageResultDTO> page(Param pageable, RotationImageQueryDTO query);

    /**
     * 查询 PC轮播图数据
     *
     * @param query
     * @return
     */
    List<RotationImageResultDTO> listByPc(Account user, RotationImageQueryDTO query);

    /**
     * 查询 APP轮播图数据
     *
     * @param query
     * @return
     */
    List<RotationImageResultDTO> listByApp(Account user, RotationImageQueryDTO query);

    /**
     * 根据id查询 系统轮播图数据
     *
     * @param id
     * @return
     */
    RotationImageResultDTO findById(Long id);

    /**
     * 新增 系统轮播图数据
     *
     * @param dto
     * @return
     */
    Long insert(RotationImageCreateDTO dto);

    /**
     * 根据id修改 系统轮播图数据
     *
     * @param dto
     * @return
     */
    Boolean updateById(RotationImageUpdateDTO dto);

    /**
     * 禁用/启用
     *
     * @param dto
     * @return
     */
    Boolean enable(RotationImageEnableDTO dto);

    /**
     * 根据id删除 系统轮播图数据
     *
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 根据id删除 系统轮播图数据
     *
     * @param dto
     * @return
     */
    Boolean deleteById(RotationImageDeleteDTO dto);
}
